/*
 * @lc app=leetcode.cn id=88 lang=javascript
 *
 * [88] 合并两个有序数组
 */

// @lc code=start
/**
 * @param {number[]} nums1
 * @param {number} m
 * @param {number[]} nums2
 * @param {number} n
 * @return {void} Do not return anything, modify nums1 in-place instead.
 */
var merge = function (nums1, m, nums2, n) {
  // let ary = []
  // while (m > 0 || n > 0) {
  //   if (m === 0) {
  //     ary.push(nums2.shift())
  //     n--
  //     continue
  //   }
  //   if (n === 0 || nums1[0] <= nums2[0]) {
  //     ary.push(nums1.shift())
  //     m--
  //   } else {
  //     ary.push(nums2.shift())
  //     n--
  //   }
  // }
  // while (nums1.length > 0) {
  //   nums1.pop()
  // }
  // ary.forEach(item => { nums1.push(item) })
  let p = m-- + n-- - 1;
  while (m >= 0 && n >= 0) {
    nums1[p--] = nums1[m] > nums2[n] ? nums1[m--] : nums2[n--];
  }
  while (n >= 0) {
    nums1[p--] = nums2[n--];
  }
}
// merge([1,2,3,0,0,0],
//   3,
//   [2,5,6],
//   3)
// @lc code=end

